package com.stellar.auth.controller.admin.authPermission.vo;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.stellar.core.util.DateFormatConstants;
import lombok.Data;
import java.io.Serializable;
import java.util.Date;


/**
 * 权限表基础视图对象
 *
 * @author Jqchan
 * @since 2025-05-16
 */
@Data
public class AuthPermissionBaseVO implements Serializable {
    private static final long serialVersionUID = -49894897603525946L;

    /**
     * 主键
     * (数据库字段: id)
     */
    private Long id;
    
    /**
     * 菜单名称
     * (数据库字段: permission_name)
     */
    private String permissionName;
    
    /**
     * 父ID
     * (数据库字段: parent_id)
     */
    private Long parentId;
    
    /**
     * 菜单类型 0-目录 1-菜单 2-操作
     * (数据库字段: type)
     */
    private Integer type;
    
    /**
     * 菜单路由
     * (数据库字段: menu_url)
     */
    private String menuUrl;
    
    /**
     * 状态 disabled-禁用 enabled-启用
     * (数据库字段: permission_status)
     */
    private String permissionStatus;
    
    /**
     * 展示状态 0-隐藏 1-展示
     * (数据库字段: show)
     */
    private Integer show;
    
    /**
     * 图标
     * (数据库字段: icon)
     */
    private String icon;
    
    /**
     * 权限唯一标识
     * (数据库字段: permission_key)
     */
    private String permissionKey;
    
    /**
     * 创建者
     * (数据库字段: created_by)
     */
    private String createdBy;
    
    /**
     * 创建时间
     * (数据库字段: created_time)
     */
    @JsonFormat (pattern = DateFormatConstants.DATETIME_FORMAT_YYYY_MM_DD_HH_MM_SS , timezone = DateFormatConstants.TIME_ZONE_GMT_PLUS_8)
    private Date createdTime;
    
    /**
     * 更新者
     * (数据库字段: update_by)
     */
    private String updateBy;
    
    /**
     * 更新时间
     * (数据库字段: update_time)
     */
    @JsonFormat (pattern = DateFormatConstants.DATETIME_FORMAT_YYYY_MM_DD_HH_MM_SS , timezone = DateFormatConstants.TIME_ZONE_GMT_PLUS_8)
    private Date updateTime;
    
    /**
     * 是否删除：1-删除/0-未删除
     * (数据库字段: is_deleted)
     */
    private Integer isDeleted;

    /**
     * 排序
     */
     private Integer sort;

}
